;A=4
;B=5
;C=7
;D=3
;X=B+C
;Y=D-C
;Z=(((((A+C)-B)*C)-X)/Y)
;A=X*Y*3
;
;A,B,C, D en memoria, X = r3,Y = r4,Z = f1 en registros, Z es double

.data
A:	.word	4
B:	.word	5
C:	.word	7
D:	.word	3

.text
.global main
main:

	lw		r1,B		;B
	lw		r2,C		;C
	add		r3,r1,r2	;X=B+C

	lw		r1,D		;D
	lw		r2,C		;C
	sub		r4,r1,r2	;Y=D-C

	lw		r1,A		;A
	lw		r2,C		;C
	add		r5,r1,r2	;A+C
	lw		r1,B		;B
	sub		r5,r5,r1	;(A+C)-B
	lw		r1,C		;C
	mult	r5,r5,r1	;((A+C)-B)*C
	sub		r5,r5,r3	;(((A+C)-B)*C)-X
	movi2fp	f2,r5		;paso a fp el valor temporal
	movi2fp	f4,r4		;paso a fp el reg Y
	divd	f0,f2,f4	;Z=(((((A+C)-B)*C)-X)/Y)

	mult	r5,r3,r4	;X*Y
	addi	r1,r0,3
	mult	r5,r5,r1	;X*Y*3
	sw		A,r5		;A=X*Y*3

	trap	0
